package com.pearl.generator.pojo.request;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author TangDan
 * @version 1.0
 * @since 2022/8/8
 */
@Data
public class EntityConfigRequest {

    @ApiModelProperty("名称")
    private String name;

    @ApiModelProperty("ID")
    private Long id;

    @ApiModelProperty("名称转换实现")
    private String nameConvert;

    @ApiModelProperty("设置父类")
    private String superClass;

    @ApiModelProperty("禁用生成 serialVersionUID，默认值:true")
    private Integer disableSerialVersionUid;

    @ApiModelProperty("开启生成字段常量，默认值:false")
    private Integer enableColumnConstant;

    @ApiModelProperty("开启链式模型，默认值:false")
    private Integer enableChainModel;

    @ApiModelProperty("开启 Boolean 类型字段移除 is 前缀，默认值:false")
    private Integer enableLombok;

    @ApiModelProperty("开启生成实体时生成字段注解，默认值:false")
    private Integer enableRemoveIsPrefix;

    @ApiModelProperty("开启 ActiveRecord 模型，默认值:false")
    private Integer enableTableFieldAnnotation;

    @ApiModelProperty("乐观锁字段名(数据库)")
    private String enableActiveRecord;

    @ApiModelProperty("乐观锁属性名(实体)")
    private String versionColumnName;

    @ApiModelProperty("逻辑删除字段名(数据库)")
    private String versionPropertyName;

    @ApiModelProperty("逻辑删除属性名(实体)")
    private String logicDeleteColumnName;

    @ApiModelProperty("数据库表映射到实体的命名策略")
    private String logicDeletePropertyName;

    @ApiModelProperty("数据库表字段映射到实体的命名策略")
    private String naming;

    @ApiModelProperty("添加父类公共字段")
    private String columnNaming;

    @ApiModelProperty("添加忽略字段")
    private String addSuperEntityColumns;

    @ApiModelProperty("添加表字段填充")
    private String addIgnoreColumns;

    @ApiModelProperty("添加表字段填充")
    private String addTableFills;

    @ApiModelProperty("全局主键类型")
    private String idType;

    @ApiModelProperty("转换文件名称")
    private String convertFileName;

    @ApiModelProperty("格式化文件名称")
    private String formatFileName;
}
